package com.ltkj.shop.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.ltkj.common.core.annotation.Excel;
import com.ltkj.common.core.web.domain.BaseEntity;

/**
 * 文创商品对象 shop_goods
 *
 * @author xupf
 * @date 2023-10-18
 */
@ApiModel(value = "文创商品")
public class ShopGoods extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 商品id */
    @ApiModelProperty("商品id")
    private Long id;

    /** 基础店铺ID */
    @Excel(name = "基础店铺ID")
    @ApiModelProperty("基础店铺ID")
    private Long sysStoresId;

    /** 用户id */
    @Excel(name = "用户id")
    @ApiModelProperty("用户id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long userId;

    /** 商店id */
    @Excel(name = "商店id")
    @ApiModelProperty("商店id")
    private Long storeId;

    /** 商品类别id */
    @Excel(name = "商品类别id")
    @ApiModelProperty("商品类别id")
    private Long categoryId;

    /** 商品名称 */
    @Excel(name = "商品名称")
    @ApiModelProperty("商品名称")
    private String name;

    /** 商品缩略图 */
    @Excel(name = "商品缩略图")
    @ApiModelProperty("商品缩略图")
    private String imgAbbrev;

    /** 商品描述 */
    @Excel(name = "商品描述")
    @ApiModelProperty("商品描述")
    private String goodsDesc;

    /** 商品成本 */
    @Excel(name = "商品成本")
    @ApiModelProperty("商品成本")
    private BigDecimal cost;

    /** 商品原价格 */
    @Excel(name = "商品原价格")
    @ApiModelProperty("商品原价格")
    private BigDecimal priceSrc;

    /** 商品实际价格 */
    @Excel(name = "商品实际价格")
    @ApiModelProperty("商品实际价格")
    private BigDecimal price;

    /** 推荐指数 */
    @Excel(name = "推荐指数")
    @ApiModelProperty("推荐指数")
    private String recValue;

    /** 查看次数 */
    @Excel(name = "查看次数")
    @ApiModelProperty("查看次数")
    private Long viewNum;

    /** 销量 */
    @Excel(name = "销量")
    @ApiModelProperty("销量")
    private Long saleNum;

    /** 状态（0下架 1上架） */
    @Excel(name = "状态", readConverterExp = "0=下架,1=上架")
    @ApiModelProperty("状态（0下架 1上架）")
    private String status;

    /** 上下架时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上下架时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("上下架时间")
    private Date onOffTime;

    /** 总库存 */
    @Excel(name = "总库存")
    @ApiModelProperty("总库存")
    private Long stockTotal;

    /** 逻辑删除 */
    @Excel(name = "逻辑删除")
    @ApiModelProperty("逻辑删除")
    private String isDel;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setSysStoresId(Long sysStoresId)
    {
        this.sysStoresId = sysStoresId;
    }

    public Long getSysStoresId()
    {
        return sysStoresId;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }
    public void setStoreId(Long storeId)
    {
        this.storeId = storeId;
    }

    public Long getStoreId()
    {
        return storeId;
    }
    public void setCategoryId(Long categoryId)
    {
        this.categoryId = categoryId;
    }

    public Long getCategoryId()
    {
        return categoryId;
    }
    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }
    public void setImgAbbrev(String imgAbbrev)
    {
        this.imgAbbrev = imgAbbrev;
    }

    public String getImgAbbrev()
    {
        return imgAbbrev;
    }
    public void setGoodsDesc(String goodsDesc)
    {
        this.goodsDesc = goodsDesc;
    }

    public String getGoodsDesc()
    {
        return goodsDesc;
    }
    public void setCost(BigDecimal cost)
    {
        this.cost = cost;
    }

    public BigDecimal getCost()
    {
        return cost;
    }
    public void setPriceSrc(BigDecimal priceSrc)
    {
        this.priceSrc = priceSrc;
    }

    public BigDecimal getPriceSrc()
    {
        return priceSrc;
    }
    public void setPrice(BigDecimal price)
    {
        this.price = price;
    }

    public BigDecimal getPrice()
    {
        return price;
    }
    public void setRecValue(String recValue)
    {
        this.recValue = recValue;
    }

    public String getRecValue()
    {
        return recValue;
    }
    public void setViewNum(Long viewNum)
    {
        this.viewNum = viewNum;
    }

    public Long getViewNum()
    {
        return viewNum;
    }
    public void setSaleNum(Long saleNum)
    {
        this.saleNum = saleNum;
    }

    public Long getSaleNum()
    {
        return saleNum;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setOnOffTime(Date onOffTime)
    {
        this.onOffTime = onOffTime;
    }

    public Date getOnOffTime()
    {
        return onOffTime;
    }
    public void setStockTotal(Long stockTotal)
    {
        this.stockTotal = stockTotal;
    }

    public Long getStockTotal()
    {
        return stockTotal;
    }
    public void setIsDel(String isDel)
    {
        this.isDel = isDel;
    }

    public String getIsDel()
    {
        return isDel;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("sysStoresId", getSysStoresId())
                .append("userId", getUserId())
                .append("storeId", getStoreId())
                .append("categoryId", getCategoryId())
                .append("name", getName())
                .append("imgAbbrev", getImgAbbrev())
                .append("goodsDesc", getGoodsDesc())
                .append("cost", getCost())
                .append("priceSrc", getPriceSrc())
                .append("price", getPrice())
                .append("recValue", getRecValue())
                .append("viewNum", getViewNum())
                .append("saleNum", getSaleNum())
                .append("status", getStatus())
                .append("onOffTime", getOnOffTime())
                .append("stockTotal", getStockTotal())
                .append("isDel", getIsDel())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
